<?php

/**
 * UsuarioController
 * 
 * @package Sgit 
 * @author Juan Manuel Martinez Carrillo
 * @copyright Juan Manuel Martinez Carrillo
 * @version 2012
 * @access public
 * @revision 15/02/2012 17:05:47
 */
class BitacoraController extends Sgit_Controller_Action
{

    protected $_main_model = 'Bitacora';
    protected $_main_form = 'Bitacora';


    function _begin()
    {
        $this->_element->impacto= new Sgit_Form_Element_Select_BitacoraImpacto('impacto');
        $this->_element->riesgo = new Sgit_Form_Element_Select_BitacoraRiesgo('riesgo');
        $this->_element->estado = new Sgit_Form_Element_Select_BitacoraEstado('estado');
    
        
    
    }
    
    function getFecha()
    {
        $q_fecha = $this->_getParam('fecha',date('Y-m-d'));
        
        $f=explode('-',$q_fecha);
        
        if(strlen($f[0])==4)
        {
            $fecha = new Zend_Date($q_fecha, 'yyyy-MM-dd');
        }else{
            $fecha = new Zend_Date($q_fecha, 'dd-MM-yyyy');
        }
        return $fecha;
    }


    public function indexAction()
    {

        $this->_loadModel('Intervenciones');
        $this->_loadModel('Eventos');

        $fecha = $this->getFecha();
        
        $now = new Zend_Date();
        $now->set('00:00:00',Zend_Date::TIMES);
        
        
        $this->view->fecha = $fecha->toString("yyyy-MM-dd");
        $this->view->fechatext = $fecha->toString("EEEE, dd MMMM yyyy");
        
        $this->view->fechaParam = $this->_getParam('fecha',date('Y-m-d'));


        $diff = $fecha->get() - $now->get(); //esto modifica fecha

        $diff = floor($diff / 86400);
        $this->view->dias = $diff;


        $f = $fecha->toString('yyyy-MM-dd');

        if ($diff > 0)
        {
            $rows = $this->_model->default->getBitacoraByFecha($f);
        } else
        {
            $rows = $this->_model->default->getBitacoraByFechaMenor($f);
        }


        foreach ((array )$rows as $k => $v)
        {
            $rows[$k]['impacto']= $this->_element->impacto->getMultiOption($v['impacto']);
            $rows[$k]['riesgo'] = $this->_element->riesgo->getMultiOption($v['riesgo']);
            $rows[$k]['estado'] = $this->_element->estado->getMultiOption($v['estado']);
        }


        $this->view->bitacora = $rows;
        $this->view->cita = $this->_model->default->getCita($fecha);


        //Intervenciones


        $this->view->intervenciones = $this->_model->Intervenciones->getIntervencionesAprobadas($fecha);


        ///Eventos
        $eventos = $this->_model->Eventos->GetEventos($fecha);
        foreach ($eventos as $k => $v)
        {
            $eventos[$k]['fecha'] = Sgit_Filter_DateDbToLocalize::filter($v['fecha']);
        }
        $this->view->eventos = $eventos;


    }

    public function insertarAction()
    {
        $this->_insertar();
    }

    public function editarAction()
    {
        $this->_editar();
    }

    public function borrarAction()
    {
        $this->_borrar();
    }

    public function autocompleteAction()
    {

        if ($this->_getParam('col') == 'sala')
        {
            $this->_autocomplete(new Application_Model_Salas(), 'nombre');
        } else
        {
            $this->_autocomplete();
        }

    }

    public function citaAction()
    {

        $this->_helper->layout->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);

        $record['fecha'] = date('m-d');
        $record['cita']  = trim($this->_getParam('cita'));
        $record['autor'] = trim($this->_getParam('autor'));

        if (empty($record['cita']))
            return true;

        $this->_model->default->insertCita($record);
    }


    protected function _prepareValuesToDb()
    {
        $row = $this->_form->getValues();
        
        
        $row['terminado'] = Sgit_Filter_DateToDb::filter($row['terminado']);
        $row['creado'] = $this->getFecha()->toString('yyyy-MM-dd');
        $row['id_usuario'] = $this->_auth->getIdentity()->id;

        return $row;
    }


    protected function _prepareValuesToForm($row)
    {
        
        $row['terminado'] = Sgit_Filter_DateDbToForm::filter($row['terminado']);
        return $row;
    }


    protected function _prepareValuesToTr($row)
    {
        $row['creado'] =    Sgit_Filter_DateDbToLocalize::filter($row['creado']);
        $row['terminado'] = Sgit_Filter_DateDbToLocalize::filter($row['terminado']);

        $row['impacto']= $this->_element->impacto->getMultiOption($row['impacto']);
        $row['riesgo'] = $this->_element->riesgo->getMultiOption($row['riesgo']);
        $row['estado'] = $this->_element->estado->getMultiOption($row['estado']);
        return $row;
    }

    protected function _getFila($id)
    {
        $row = $this->_model->default->getBitacoraById($id);
        return $this->_prepareValuesToTr($row);
    }


}
